package com.chen.dao;


import com.chen.pojo.Role;
import com.chen.vo.RoleVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface RoleMapper {
    //根据id查询角色
    @Select("select * from csrsystem.csrsystem_role where role_id = #{roleId}")
    Role queryRoleById(@Param("roleId") int roleId);
    //查询全部角色
    @Select("select * from csrsystem.csrsystem_role")
    List<Role> queryAllRole();

    /**
     * 查询角色
     * @param roleVo
     * @return
     */
    List<Role> queryRole(RoleVo roleVo);

    /**
     * 添加角色
     * @param role
     * @return
     */
    int addRole(Role role);

    /**
     * 修改角色
     * @param role
     * @return
     */
    int updateRole(Role role);

    /**
     * 删除角色
     * @param roleId
     * @return
     */
    @Delete("delete from csrsystem.csrsystem_role where role_id = #{roleId}")
    int deleteById(@Param("roleId") int roleId);

    /**
     * 删除原有关系
     * @param roleId
     * @return
     */
    @Delete("delete from csrsystem.csrsystem_role_menu where rid = #{roleId}")
    int deleteRoleMenu(Integer roleId);

    /**
     * 添加角色现有关系
     * mapper 里面传递 两个参数  用注解
     * @param roleId
     * @param menuId
     */
    @Insert("insert into csrsystem.csrsystem_role_menu(mid,rid) values(#{id},#{roleId})")
    void addRoleMenu(@Param("roleId") Integer roleId, @Param("id") String menuId);

    /**
     * 查询所有角色列表
     * @return
     */
    @Select("select * from csrsystem.csrsystem_role")
    List<Map<String,Object>> queryRoleListByMap();

    /**
     * 根据员工ID查询该员工拥有的角色列表
     * @param vipId
     * @return
     */
    @Select("select rid from csrsystem.csrsystem_role_vip where vid = #{vipId}")
    List<Integer> queryEmployeeRoleByVipId(@Param("vipId") Integer vipId);


}
